add warehouse manipulate function