refactoring businessLayer