bunch of code changes