Finished third version