some solution restructuring