Improved the basic structure