clean structure on optional challenges