CompareEngine update

commited with known errors:
when handed the transcript, it appears it is handed a pointer to
original data, not a copy. Also, * and @ are currently always passing,
which is wrong wrong wrong...
considering revamping compare engine to handle the object array instead
of the default list model.