add support for empty contructor