start splitting things up a bit
add a couple more query operations (random, subcatinfos)