simplied boilerplate