Train is now both observable and observer. Improved commands