get size defensively