Tedious boilerplate project.