changed stream to always call callback regardless of error and also fixed stop to work faster and more efficiently and accurately