combined our functionality together