Lots of changes. Working