initial functionality complete with messaging