modularized spec