crude movement
movement is affected by floating point errors
added fps counter