moving away from the boilerplate