renamed source and added hierarchical search