major changes

Restructure, add some defaults, add some defuns, require some modes.