move board "dup" logic into board class