logic sepparated into multiple extensions