adding new features and making it better