Add third layer edge orientation; start work on corner orientation.
Improve solution API.