Setup
wip
Version 1 with tests.