fix receive with future to reduce code