A little cleanup and organisation of our feature detection

A small effort to categorise and normalise our feature detection methods. Doesn't break anything except compatibility of the `transform` method which is currently totally unused anyway.