includes roberts implementation, changes for roberts implementation to use gui