Input WIP

Work in progress:
- no tests
- haven't looked at inline styles

Comments welcome.