added all kinds of features