Refactored V 0.2