add binary protocol, much refactoring, move pool to oss