Worked on Arbitrary Function