Is do_install really a private part of the API? Should it be @api private perhaps?