added rough framework for system module