add some feature and improve something