fixed something really weird about shelve