refactored zero (arghhhh)