built out rough chat component, along with some housekeeping