break out endpoints
break out arg handling
add arg handling