more compass refactoring