Adding util/cache; some impr