added rotates, shifts