First draft of O(n) time suffix array construction