add plugin interface
improve, document and export lenses