first send abstraction works