updated version number
refactored Factory