Re-organized the interface definitions