Add initial strucutre, tests and docs.