Initial support for `PUT`, close #14, #15, #16