refactor roll method