lots of changes, please review