as it acts as a ctor we should probably just rename this "Application" instead of main?