new structure, everything in one file and module