refactor transporter controller