simple factory demo.