sorted readable, added tests