fixed issue where you could override previous moves
moved board drawing logic into its own partial (could be useful elsewhere as the app gets expanded)