refactoring

create factory for each changeable component of program
refactoring

create factory for each changeable component of program