new structure for adding solution function