Added basic range support, a bit hacky at the moment, but is working on the substitute command