added 'exists' method