moving class lookup to meta class
adding get_diff to detect type changes