furthur refactor class packages