boilerplate structure