extracted some methods, everything works
added non blocking input
added Direction
added constant motion