lots of changes... srry