integration and abstraction out of web controllers