bring tests back into line with new stuff. Everything is implemented as a protocol now, because they're awesome.