Use separate maps for features

Improved performance by avoiding storing row-based collection of
features per element and by switching to column-based per-feature maps.
This also made the code more concise.
Minor changes

Renamed some functions/vars
More problem urls