refactored architecture
refactored architecture