#4 implemented
tidy