made mainProperties optional