add parent and child methods, refactor selector methods