added default arguments and scope objects
merged