need to fix architecture due to behavior confusion