abstract model
add test for composite template validation
refactor client to standardize request execution