abstract combo + implements