got rid of redundat setting code in _add and _set