More DRY, more tests