Add model blending, refactor API