added operation and variable observer