Separate controllers out, and add search/filtering