just a little less boilerplate