Work in progress. Many changes in different areas.