fixed negative substrate bug again