separating out modules properly