Very rough testable prototype.