replace interface Transport by abstract class