start abstraction work