mgj : core added
mgj : solution changed
mgj : test added