this code is supposed to be used for training purposes only!