All specs passing now, code re-organized.