New version based on boilerplate structure