adding support for 4 constr. args