version before design refactor