more robust lookup up constructors