Issue #29: constructor cleanup