new changes from main 3.0 repo
put things in order