Cocoon project initially by Rory Sie. Bart Jan van Engelen contributed significantly to this project.