Somewhat more universal, nicer code
More comments, less reflowing