expose internals for advanced directive authoring