completed input framework. need config parser still