fix type-mismatch bug