Initial implementation, tests and README