This is a work in progress. Additions and changes added regularly.