A basic layout of how this class is going to work, needs implementation