still working on add/remove from/to shelf functionality