refactor for cedet and apply ede