standard api approach with CI