completed the basic structure