almost finished all features