refactored, chopped up models