separate web classes from business logic