http://www.fullstackprep.dev/articles/sda/apidesign/idempotent-methods