increase modularity and change visualization