made many preprocessing steps optional, refactored parts of code, updated readme