Make shelves a nested resource by supplying function