59: optimize
187: some progress