fork from Chris Banes