issue 1 : Introduced component factory