private boilerplate