added ordering, still need to test more