doctrine works