implemented 90/180 and 270 rotate