record update (HTTP POST) and refactors