lots of refactors; mostly added dummy