add prepareArgsFunc to Udef

args can now be pre-processed at will. Useful for depricated stuff
add 'private' arg to Udef:setSpec