minor code cleanup and added TODO lists
add prediction cache and make predictions abortable