Four months is far too young.
You're talking about a puppy who's only a few weeks old!
There's no way I'd allow a puppy that young to undergo a general anaesthetic for an elective surgery.
I would prefer to enjoy my pet and allow him to be a puppy and develop into an adult before having him castrated.
Dogs will always display some unwanted behaviours,well,because they're dogs!
The main reason for neutering is to prevent unwanted offspring in the pet population.This can be done at a later stage when the dog is mature and growth complete.
Sharing my sofa with Holly, Ivy,Lilly and Hazy.. and never forgetting our beautiful Daisy who reached the bridge too soon.