Added comments and structural changes, added WASD