added all 3 features