Intermediate model refactor