functionally complete