fixes #39 and supports all widning conversions