adding the business logic and web layer