abstract circuit pattern