finish board layout
add working logic to check for invalid row