Refactored to Version 1.0