extend basic structure and fix first bug