stepped state machine implementation
adds test command to setup.py