some failed functions fixed!