add holding and put function