a few new oprators and functions