adds support for multiple constructors