renamed empty() to is_empty()