Initial commit
not yet completely tested, most likely will not work