convert to specs, more modular structure