adding more tests
some renaming
adding threshold strategy
Adding more exceptions and commenting