Began Functionality refactor. Roll is the first working example.