it's quite non-idiomatic to have options of reflection artifacts in the compiler