inital commit - mostly tested