merging more...adding State pattern to clean things up a bit.