crazy 2nd batch. Too many changes but forgot to commit. T_T