First commit. Done basic models and their test cases.