Adding a bunch of new features. Modifying old code to optionally use sift.