functions better, need more data examples for testing