adding payload functionality