api functionally complete