eliminate some boilerplate