architecture for handling definitions