fixed expression type checking, argument number bug