Optimising repetitive code