add toString() method; allow use submodules