restructured the code, better module handling