Many improvements, many bug fixes.