fixed a couple of bugs, added more specific abstract typing for states, began work on reimplementation of DiracVector