Factor directedness out of smart ctors, rename parser helpers