Update

This has most of the functionality asked for. Only thing we are missing
is an update function, but two out of three will have to do.