refactored and includes methods for roll, score and initialize