rotation functions are now passed as args to rotate by and rotate to