first commit - 2D mostly working