main architecture done