everything is making sense right now but I'm going to start implementing + constraints on bags