Design first, code when needed