removed isEmpty()