automatically register ports as async