finalized first version.