First iteration, passes tests.