add docs and remove protected so that the module is documented