Refacotred api and reporting