Update directory structure, add tests and functionality :rose: