added callback and things to train