Townk has made a better implementation