initial commit for new API and refactor of base framework