update and fix old bugs :s