cleaning up the library and fix some feature

add some feature like take(), find() and findBy()