First working version, added search and dynamic category filtering