See http://verboselogging.com/2013/02/11/make-your-own-celluloid for details