moved connection to receive. Do not override in subclasses!