cleaned up some boilerplate