add is_empty is_full