restricted y axis, possibly implement wrap around