Overhauled abstraction