refactored instances of classes and added self installer