Make async microservices work with any return type, add tests