add test for isEmpty
headOption test
tailOption test
organize tests