Movement is still a little broken
more documentation and comments
general cleanup of code