Moved HexagonBoard implementation into a seperate file, some other cleanup