add demo function