add support for empty constructor