refactoring to have precise access paths for sources and sinks. This is a change that breaks backwards compatibility, but it's hard to avoid it.