more stable, and a little more modular