Initial refactor to add tokio::main and be fully async