en...my idea is that settings will be passed as the parameter of the SparkIMain...so we'd better not create anything when it is null....maybe we should have an "else throw SparkException("...")"?