added server side required checks