'public' functions