Serious rework. Now uses CommandParser and has many new features.