initial integration. some stuff missing
merge