refactor some code and tweak the tracing approach so that we dont have to rely on each and every languages meta capabilities. Also this way is simpler.