todo: change the loop :/