abstract methods are now public.