added search and shuffle