Some refactoring
Heavy refactoring; reworking BlockGarden API