huge refactoring. introduction of Service oriented design.