made some progress with how the logic should be applied to the models but it still not ready to be used, also added a test folder