TODO the {:name ".." :vals [...]} structure must be created generically