add unified counter interface