added safeDefaults mixin