added validation, tostring functions, and fixed child page bug