improved submit