improved main