added binary functions