abstract performance