refactor to support class level updates. begginning of code reorginization before first beta release.