implemented missing function