put functionality completeed