Premature vs. Unnecessary Abstraction in Code