recursively push every level