This commit is too large to list all changes.
Added several components and features too long to list here