size optimise the code