some improvements: auto mode, bad decision checking, etc