can now accept all required input, and it seems to actually work