redoing input framework to use multiple single-function scripts