Refactor ICdmViewer framework