Move typeconverter check

This allows you to enforce custom conversion when using simple types. It  gives you more flexibility and also ensures that any custom types are converted immediately which would be a performance boost. I added the check for the TypeConverter on a class also as that lets us avoid having to overly annotate our classes.