made dependency more generic