Working towards complete roam

* has errors but sorta works.