opensource from @ryanve who's now contributing @s9a too :p