v1 added more member functions, and movement for pieces