change printout
add new factory method and demo 6