avoid hard dependency