polished the CDI and use @ConfigProperty to allow injection via system properties or env vars