some ideas and changes