add first working version that is missing stuff and is undocumented