changed factories, added enums
conflict in drver resolved