basic input functionality
Mostly finished with input