#15 going to try to decouple input