tag parsing functions now use reflect.Value
moved tag parsing functions to separate file