keep codebase DRY