Add matrix based rotation
fixes #2