gracefully handle overflow