removing some of the boilerplate