now 'train' return iter

'train' does not need return an object since we have 'toJSON'