now 'train' return iter

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