add shepherd primitive for singleton-scoping