It's "funny" how we as developers became afraid of violating DRY and try to find abstractions, no matter how leaky they are.