model refactoring & other details