major api refactor