copyright © 2009 Valerio Proietti | MIT License | download from github