add Circuit virtual class