initial commit from sourceforge version