compiling again
factory got his own class