more size optimise the code