Added many new features, none of them tested.