moved shelf to JSON and fixed some endpoint fields