sources to difference constructors; component to state and component