fix bug + optimize