object oriented lru rewrite