added preliminary compiler
added include guards