slowly filling in the compile methods