implemented operator k