basic rotation working, needs some bounds checking