module-ized sha detection