with A B C, and orient optional input