abstract background call