Removed SH dependency - now just uses regular subprocess module