Add orient, many other changes