Introducing types to allow flowing compilation settings to the application

Seemingly not. Will trim this down.