good lord, software is hard