internal model refactorings