change pin model to be independent of board; add join table