refactoring of ShelfRequest post discussion with Nathan