Separate out test file.
Change code so we return strings from commands instead of printing them for better testability,
Added a post_handler callback.

# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#	modified:   engine.py
#	modified:   spels.py
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#	.idea/
#	engine.pyc