various changes.  not stable.