improved `put` & `get`