Complex refactoring and re-designed layers in order to simplify them and move down transaction management to DAO layer