add put functionality