Revert "Revert "Basic structure""

This reverts commit a47eeea2b4b52e0822ad8af2db87d593496cfbeb.