this method should be public.