1. Improvements.
SHA1: 4fc8c05b7c34f19cd14acd5a85bccf9c54c64c48
SHA256: 3b05ebb8f1a04a68a8ca97a219f86c222b6f4b78f0fc4b64e390ed13e161044c
SHA3-512: 9213affa75988f458deb61bd371d212cce908c5ed16bc3b54e5216980a4e0b49ec275d589e62d1c01d7ab1d272efe285d95a7ae29ebe9567e45c407ad8f88d78