clean + comments
extract callBack