Added interactive shell feature. Lots of new code.