Refactoring + Add cache support for restaurant (not finished)