fix mistakenly using .call(), replace it with .apply() 

1. fix mistakenly using .call(), replace it with .apply() 
2. unit test for it