Return a Promise when establishing a connection, plus better error handling; remove unneeded permissions