changing function implementation