added Arg to the package
refactored factories
up to date with post 09