precomiple initial
finish sort implementation