added solutionGenerator
added update
added return