Added repository and service layers