module/class structure makes more sense hopefully