destroyed some boilerplate