add child functionality