full convert function