changes for best performance