Slightly cleaner approach; less prone to patch breakage from upstream changes and much easier to update