add demo and some changes