diff --git a/.gitignore b/.gitignore
index dff1b301c1168402e3fffeea1dd9133977fd1378..99ba0afdec78375508c773c259303a01e153b3f2 100755
--- a/.gitignore
+++ b/.gitignore
@@ -8,6 +8,7 @@ cron/
 _build/
 databases/
 errors/
+generated/
 httpserver.log
 private/
 sessions/
diff --git a/docs/api/constant.rst b/docs/api/constant.rst
new file mode 100644
index 0000000000000000000000000000000000000000..ea036a600ce4a7802f535926199a3e3a6e4591bd
--- /dev/null
+++ b/docs/api/constant.rst
@@ -0,0 +1,12 @@
+
+Constants
+---------
+
+   ===============  ===  ================================================
+   CALLBACK_ERRORS  str  ``_callback_errors``
+   DBUI             str  ``Dbui``
+   INLINE_ALERT     str  ``<script>Ext.Msg.alert('%s', '%s');</script>``
+   UNDEF            str  ``undefined``
+   UNDEF_ID         int  ``1``
+   UNKNOWN          str  ``???``
+   ===============  ===  ================================================
diff --git a/docs/api/controller.rst b/docs/api/controller.rst
new file mode 100644
index 0000000000000000000000000000000000000000..b26e5679aab38be0f50679231b18d5cf56973842
--- /dev/null
+++ b/docs/api/controller.rst
@@ -0,0 +1,48 @@
+
+Controller
+----------
+
+Selector
+^^^^^^^^
+
+.. currentmodule:: plugin_dbui.selector
+
+.. autosummary::
+    :toctree: generated/
+
+    Selector
+
+Helper functions
+^^^^^^^^^^^^^^^^
+
+.. currentmodule:: plugin_dbui.helper
+
+.. autosummary::
+    :toctree: generated/
+
+    as_list
+    close_user_session
+    decode_field
+    dummy_row
+    encode_field
+    encode_validator_errors
+    get_all_tables
+    get_create_id
+    get_field_validators
+    get_file_paths
+    get_foreign_field
+    get_id
+    get_language
+    get_plugin_path
+    get_reference_paths
+    get_set_field
+    get_script_path
+    get_set_field
+    get_store_id
+    get_versions
+    get_where_query
+    is_foreign_field
+    is_mathjax
+    is_set_field
+    is_table_with_foreign_fields
+    rows_serializer
diff --git a/docs/api/database_model.rst b/docs/api/database_model.rst
new file mode 100644
index 0000000000000000000000000000000000000000..dbb3f0f1bbe33d761d489fb1a952a776c15f96c9
--- /dev/null
+++ b/docs/api/database_model.rst
@@ -0,0 +1,35 @@
+
+Database model
+--------------
+
+Callbacks
+^^^^^^^^^
+
+.. currentmodule:: plugin_dbui.callback
+
+.. autosummary::
+    :toctree: generated/
+
+    INHIBIT_DELETE_UNDEF
+    INHIBIT_UPDATE_UNDEF
+
+Filters
+^^^^^^^
+
+.. currentmodule:: plugin_dbui.filters
+
+.. autosummary::
+    :toctree: generated/
+
+    CLEAN_COMMA
+    CLEAN_SPACES
+
+Validators
+^^^^^^^^^^
+
+.. currentmodule:: plugin_dbui.validator
+
+.. autosummary::
+    :toctree: generated/
+
+    IS_IN_USET
diff --git a/docs/api/index.rst b/docs/api/index.rst
index 38f432144c68702722de3b4aa1f7fb8ef2114f3a..f3ec703b0b87d38c785b4e9b8ae028296a956d41 100644
--- a/docs/api/index.rst
+++ b/docs/api/index.rst
@@ -3,82 +3,17 @@
    You can adapt this file completely to your liking, but it should at least
    contain the root `toctree` directive.
 
-Welcome to plugin_dbui's documentation!
-=======================================
+Documentation contents
+======================
 
-Contents:
+.. toctree::
+    :maxdepth: 2
 
-.. currentmodule:: plugin_dbui
-
-
-The main class
-==============
-
-Constants
----------
-
-   =========  ===  =============
-   UNDEF      str  ``undefined``
-   UNDEF_ID   int  ``1``
-   UNKNOWN    str  ``???``
-   =========  ===  =============
-
-Helpers functions
------------------
-
-.. currentmodule:: plugin_dbui.helper
-
-.. autosummary::
-   :toctree: generated/
-
-   get_id
-   
-Modifiers
----------
-
-.. currentmodule:: plugin_dbui.fieldsmodifier
-
-.. autosummary::
-   :toctree: generated/
-
-   FieldsModifier
-
-.. currentmodule:: plugin_dbui.formmodifier
-
-.. autosummary::
-   :toctree: generated/
-
-   FormModifier
-
-.. currentmodule:: plugin_dbui.gridmodifier
-
-.. autosummary::
-   :toctree: generated/
-
-   GridModifier
-
-Validators
-----------
-
-.. currentmodule:: plugin_dbui
-
-Callbacks
----------
-
-Database service
-----------------
-
-.. autosummary::
-   :toctree: generated/
-   
-   dbsvc.DbSvc
-   directsvc.DirectSvc
-
-Base classes
-------------
-
-Exceptions
-----------
+    constant
+    database_model
+    user_interface
+    controller
+    service_exception
 
 Indices and tables
 ==================
diff --git a/docs/api/modules.rst b/docs/api/modules.rst
deleted file mode 100644
index bacff2679210be0971d17e85ef578db82a25cb7e..0000000000000000000000000000000000000000
--- a/docs/api/modules.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-plugin_dbui
-===========
-
-.. toctree::
-   :maxdepth: 4
-
-   plugin_dbui
diff --git a/docs/api/plugin_dbui.rst b/docs/api/plugin_dbui.rst
deleted file mode 100644
index 4a107471fb030647eddc249257489c04e4f57511..0000000000000000000000000000000000000000
--- a/docs/api/plugin_dbui.rst
+++ /dev/null
@@ -1,163 +0,0 @@
-plugin_dbui Package
-===================
-
-:mod:`plugin_dbui` Package
---------------------------
-
-.. automodule:: plugin_dbui.__init__
-    :members:
-    :undoc-members:
-    :show-inheritance:
-
-:mod:`basesvc` Module
----------------------
-
-.. automodule:: plugin_dbui.basesvc
-    :members:
-    :undoc-members:
-    :show-inheritance:
-
-:mod:`callback` Module
-----------------------
-
-.. automodule:: plugin_dbui.callback
-    :members:
-    :undoc-members:
-    :show-inheritance:
-
-:mod:`constant` Module
-----------------------
-
-.. automodule:: plugin_dbui.constant
-    :members:
-    :undoc-members:
-    :show-inheritance:
-
-:mod:`converter` Module
------------------------
-
-.. automodule:: plugin_dbui.converter
-    :members:
-    :undoc-members:
-    :show-inheritance:
-
-:mod:`dbsvc` Module
--------------------
-
-.. automodule:: plugin_dbui.dbsvc
-    :members:
-    :undoc-members:
-    :show-inheritance:
-
-:mod:`directsvc` Module
------------------------
-
-.. automodule:: plugin_dbui.directsvc
-    :members:
-    :undoc-members:
-    :show-inheritance:
-
-:mod:`extjs` Module
--------------------
-
-.. automodule:: plugin_dbui.extjs
-    :members:
-    :undoc-members:
-    :show-inheritance:
-
-:mod:`fieldsmodifier` Module
-----------------------------
-
-.. automodule:: plugin_dbui.fieldsmodifier
-    :members:
-    :undoc-members:
-    :show-inheritance:
-
-:mod:`filters` Module
----------------------
-
-.. automodule:: plugin_dbui.filters
-    :members:
-    :undoc-members:
-    :show-inheritance:
-
-:mod:`formmodifier` Module
---------------------------
-
-.. automodule:: plugin_dbui.formmodifier
-    :members:
-    :undoc-members:
-    :show-inheritance:
-
-:mod:`gridmodifier` Module
---------------------------
-
-.. automodule:: plugin_dbui.gridmodifier
-    :members:
-    :undoc-members:
-    :show-inheritance:
-
-:mod:`helper` Module
---------------------
-
-.. automodule:: plugin_dbui.helper
-    :members:
-    :undoc-members:
-    :show-inheritance:
-
-:mod:`mapper` Module
---------------------
-
-.. automodule:: plugin_dbui.mapper
-    :members:
-    :undoc-members:
-    :show-inheritance:
-
-:mod:`modifier` Module
-----------------------
-
-.. automodule:: plugin_dbui.modifier
-    :members:
-    :undoc-members:
-    :show-inheritance:
-
-:mod:`navtree` Module
----------------------
-
-.. automodule:: plugin_dbui.navtree
-    :members:
-    :undoc-members:
-    :show-inheritance:
-
-:mod:`selector` Module
-----------------------
-
-.. automodule:: plugin_dbui.selector
-    :members:
-    :undoc-members:
-    :show-inheritance:
-
-:mod:`storemodifier` Module
----------------------------
-
-.. automodule:: plugin_dbui.storemodifier
-    :members:
-    :undoc-members:
-    :show-inheritance:
-
-:mod:`validator` Module
------------------------
-
-.. automodule:: plugin_dbui.validator
-    :members:
-    :undoc-members:
-    :show-inheritance:
-
-:mod:`viewportmodifier` Module
-------------------------------
-
-.. automodule:: plugin_dbui.viewportmodifier
-    :members:
-    :undoc-members:
-    :show-inheritance:
-
diff --git a/docs/api/service_exception.rst b/docs/api/service_exception.rst
new file mode 100644
index 0000000000000000000000000000000000000000..1d93449b7cb82c10635c6ceabdf3f5e74b324a59
--- /dev/null
+++ b/docs/api/service_exception.rst
@@ -0,0 +1,76 @@
+
+Services, exception and base classes
+------------------------------------
+
+Services
+^^^^^^^^
+
+.. currentmodule:: plugin_dbui.dbsvc
+
+.. autosummary::
+    :toctree: generated/
+
+    DbSvc
+
+.. currentmodule:: plugin_dbui.directsvc
+
+.. autosummary::
+    :toctree: generated/
+
+    DirectSvc
+
+Exceptions
+^^^^^^^^^^
+
+.. currentmodule:: plugin_dbui.dbsvc
+
+.. autosummary::
+    :toctree: generated/
+
+    DbSvcException
+
+.. currentmodule:: plugin_dbui.extjs
+
+.. autosummary::
+    :toctree: generated/
+
+    ExtJSException
+
+.. currentmodule:: plugin_dbui.gridmodifier
+
+.. autosummary::
+    :toctree: generated/
+
+    GridModifierException
+
+.. currentmodule:: plugin_dbui.viewportmodifier
+
+.. autosummary::
+    :toctree: generated/
+
+    ViewportModifierException
+
+Base classes
+^^^^^^^^^^^^
+
+.. currentmodule:: plugin_dbui.basesvc
+
+.. autosummary::
+    :toctree: generated/
+
+    BaseSvc
+
+.. currentmodule:: plugin_dbui.extjs
+
+.. autosummary::
+    :toctree: generated/
+
+    Base
+
+.. currentmodule:: plugin_dbui.modifier
+
+.. autosummary::
+    :toctree: generated/
+    
+    Modifier
+
diff --git a/docs/api/user_interface.rst b/docs/api/user_interface.rst
new file mode 100644
index 0000000000000000000000000000000000000000..0e7cdb91e4e9c45888924540158f639944b244f2
--- /dev/null
+++ b/docs/api/user_interface.rst
@@ -0,0 +1,134 @@
+
+User interface
+--------------
+
+Field
+^^^^^
+
+.. currentmodule:: plugin_dbui.fieldsmodifier
+
+.. autosummary::
+    :toctree: generated/
+
+    FieldsModifier
+
+
+Form
+^^^^
+
+.. currentmodule:: plugin_dbui.formmodifier
+
+.. autosummary::
+    :toctree: generated/
+
+    configure_forms
+    FormModifier
+
+.. currentmodule:: plugin_dbui.mapper
+
+.. autosummary::
+    :toctree: generated/
+
+    map_default
+    map_tabpanel
+
+Grid
+^^^^
+
+.. currentmodule:: plugin_dbui.gridmodifier
+
+.. autosummary::
+    :toctree: generated/
+
+    configure_grids
+    GridModifier
+
+Store
+^^^^^
+
+.. currentmodule:: plugin_dbui.storemodifier
+
+.. autosummary::
+    :toctree: generated/
+
+    AddStore
+    StoreModifier
+
+Viewport
+^^^^^^^^
+
+.. currentmodule:: plugin_dbui.navtree
+
+.. autosummary::
+    :toctree: generated/
+
+    Node
+
+.. currentmodule:: plugin_dbui.viewportmodifier
+
+.. autosummary::
+    :toctree: generated/
+
+    ViewportModifier
+
+Convert database fields to widgets
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. currentmodule:: plugin_dbui.converter
+
+.. autosummary::
+    :toctree: generated/
+
+    to_field
+    to_fields
+    to_formPanel
+    to_gridColumn
+    to_gridColumnModel
+    to_gridFilter
+    to_gridPanel
+    to_jsonstore
+    to_model
+    to_panelWithUrlSelector
+    to_treeNodes
+    to_viewport
+
+Ext JS widget mappings
+^^^^^^^^^^^^^^^^^^^^^^
+
+.. currentmodule:: plugin_dbui.extjs
+
+.. autosummary::
+    :toctree: generated/
+
+    ArrayStore
+    CheckBox
+    ComboBox
+    DirectStore
+    Field
+    FieldAceEditor
+    FieldContainer
+    FieldDate
+    FieldDict
+    FieldList
+    FieldNumber
+    FieldSet
+    FieldText
+    FieldTextArea
+    FieldTime
+    FormPanel
+    GridColumn
+    GridColumnModel
+    GridFilter
+    GridPanel
+    GridRowNumberer
+    GridTemplateColumn
+    GridWithFilter
+    JsonStore
+    Model
+    Panel
+    PanelWithUrlSelector
+    Store
+    TabPanel
+    Viewport
+    Window
+    XmlStore
\ No newline at end of file