base setup/ added factory class