Adding improved Simple Factory example