initial commit
implement loads of stuff