separation of boilerplate and application