algorithm architecture start