cleaning
moved code around
first commit for splitting the model from the callbacks handler
still moving code around
callbacks handler split from the model
fixed regression in rename()