cleaned up model methods, and dependencies between models