added re-factored business logic api