ordinal refactor