untested, transform add, maybe also do def later

def vector