Major structure changes, and interface implementation