updated basic structure