done without deep search. call methods definitions
work with return. search work too. need refactore
refactored