module system design