modularization + documentation