standardize precompiler output between strings, files, and directories
refactor precompiling API