better boilerplate