Spec various chain functions and avoid unnecessary .call

#397 tests