Refactored units to work with delegate