Started working on a few implementations + unit tests