Optimise data structrue