functional extended