A general framework for functional regression modelling. (February 2017)