Added version field for future use and refactored