worked on TrialAndError