add demo. improved demo