customer model refactored to more modules