Restructuring, initial unit-test, etc