Base layer of join event functionality. Still need to write data manipulation layer