Added more tests and is_empty? function