imporve addresses and use onlyAddresses