main procedure