complete almost function