apply defaults once in constructor