Refactored the function adaptors
Added a new function adapter