add some features
fix merge conflicts