support custom uris
switch to inheritance
support callbacks
update attributes from returned json
make create properly update attributes