allow manual orientation setting
refactor Orientation enum into its own class