some private func as package func, add check vector list to compatible
add constructors, documentation and unittests