Restructure and start building with tests