searching implemented. close #9 #10 #11 #12