factored is longer than macro into file