first commit... lots of code...