Fix: Make rotation methods chainable, add tests