have implemented the actual code writing up to compileif
finished have yet to test