very functional! now with added constants.