We were wrong, better abstraction