Refactored and half way through saving