preparing code architecure