pseudocode and initial solution