Closes #30: add search function