main realization