lots of changes... but not done...