initial compiler stuff