before packet implemented