doctrine stuff