starting to compile various statements. still working out contract for compile method.