improve and optimise hexagon creation