general structure updated