update virtus gem, refactor coerce code