add functional io. cleanup needed.
add precondition checking to display.c
add argument precondition checking
update README.md