convert to simpler interface

Initially keep .call and use base-check, once everything is converted, base_check can simply move into the code that currently calls call, will also unify error presentation.

@jish