Restructure to make it easier to extend in the future

Reviewed by:	will
Suggested by:	ngie


git-svn-id: svn+ssh://svn.freebsd.org/base/head@275658 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f