the basic architecture