Staged for ass2 refactoring