Fixed structural issue: added service layer