improve few methods, finished all tests