ENH: add private ID
TST: add testing and start refactoring