refactored how the version strings are populated
cast now does some conversions
include an non standard .parse method for int, uint and double
fixed some tests