Refactored to 2.0.0 standards