Imported code from Sourceforge, added MIT license