Added interfaces and exposing the components