Boilerplate complete solution