Define generic contracts for processors; add a URI processor (breaks build) (issue #8)