add some features and finish example