current state

has some bugs. doesn't matter. :)