Improved abstraction