various logical updates