abstraction and library examples