implement swagger