Freelancer:
tcyash
#2
With some minor changes.