removing hal dependency