refactored business module*