Refactor evaluator to be more extensible
Work on data provider interface for handling unicorn items - incomplete still