adapter template