basic structure for solving