ideas and basics