#7 Added validation and support for mixed chars.