added gitignore
Updated the service layer to have a abstract layer