Refactored data storage, error passing and some validation