toJSON now accepts collection parameter