found that eliminating translation makes in-place rotation work as expected. translation needs fixing