initial commit, only tested on linux32/64