eventhought still sloppy, but at least pass the test