Added ComponentIml Class, Changed Component to interface type