completely remove dependency on type assertion.