construct architecture with callback structure