Battleship Tapa

Description
Battleship Tapa is a hybrid of Battleships and Tapa, where the ships given must be located within the grid.

Rules
The objective is to add ships to the grid, subject to the following rules:


 * 1) All given ships on the in the key must be included in the grid with no others.
 * 2) No ship may touch another, even diagonally.
 * 3) Clue cells cannot be shaded and indicate the number of consecutive cells shaded around them. There must be at least one unshaded cell between shaded regions. ? is wild and can stand for any non-zero value.

Rules
A standard 10x10 battleship tapa and its solution.