Abstraction implementation