Create a more robust CharRange class