more boilerplate simplification