improve settings, add many new features