Making some changes after code review. Following coding standards, and split off some logic from the order observer into a custom customer model.