precompile
implement error msg