make data parameter optional for post