SIAM: refactored SIAMDD to support other component types