More readable code and more tests