improves transformation (rotation) implementation. Custom types possible, more clear API.