Inital commit, many bugs, much to do!