class boilerplate