main features were implemented