* initialize beacon state separately
* extracting out testcase into another func
* creating function for simulated objects
* creating simulated object struct
* final clean up
* documentation
* lint
* adding chain advancer
* review comments
* replacing lib
* adding initialization for chain and new vars in struct
* added func
* fixing tests and all other bugs
* fixing tests
* docs
* adding a new nil block function
* adding test
* remove check for nil blocks
* godoc
* fixing merge conflicts, tests
* fix test