improved module model