add specification
add controller spec
add middleware spec