added support for payload data validation

this also removes the need of calling payload objects'
toJSON() method.