Freelancer:
ysfworks
Improvement
Here is another submission with further improvements.