add self-update option and update docs