abstract factory engine to load modules
moving extensions from a separated project to a package