Lots of changes. Working shell