Simplified the interfaces and reduced dependency