fix invalid call exceptions, better spec