move the extra methods from trains and output into udp because architecture