split into multiple files for better organization

for now, use the simplest compiler that could
possibly work: CAT(1).