Refectoring registering report logic for language abstraction