Projection interface/implementors + tests