Tests as separate object implementations