Input now uses hooks instead of keystate, added ply:GetTrain()