private helper