handling factory basic implementation