cleaned up runBlock