Final version without use of Methods