added category methods, cache test and todo