5.6 exercises, improve the test suite and DRY out utilities with spec for helpers