[fix] argument handling

- correctly handles 0, 1, 2, 2+ arguments