Make modular, plus add extra functionality.