it seems like the topic of your issue is so related to metric: ['effectiveness'] here are some suggestions of refactorings:
[MoveField(org.iselab.grocery.repository.ProductRepository;org.iselab.grocery.controller.Shapes;[products];[]), MoveField(org.iselab.grocery.repository.ProductRepository;org.iselab.grocery.util.SystemUtils;[shapes];[]), MoveField(org.iselab.grocery.controller.Shapes;org.iselab.grocery.repository.ProductRepository;[products];[]), MoveField(org.iselab.grocery.repository.ProductRepository;org.iselab.grocery.controller.Shapes;[products];[]), MoveMethod(org.iselab.grocery.domain.Product;org.iselab.grocery.util.UUIDUtils;[];[setId]), MoveMethod(org.iselab.grocery.MainClass;org.iselab.grocery.util.SystemUtils;[];[run])]
it seems like the topic of your issue is so related to metric: ['effectiveness'] here are some suggestions of refactorings: [MoveField(org.iselab.grocery.repository.ProductRepository;org.iselab.grocery.controller.Shapes;[products];[]), MoveField(org.iselab.grocery.repository.ProductRepository;org.iselab.grocery.util.SystemUtils;[shapes];[]), MoveField(org.iselab.grocery.controller.Shapes;org.iselab.grocery.repository.ProductRepository;[products];[]), MoveField(org.iselab.grocery.repository.ProductRepository;org.iselab.grocery.controller.Shapes;[products];[]), MoveMethod(org.iselab.grocery.domain.Product;org.iselab.grocery.util.UUIDUtils;[];[setId]), MoveMethod(org.iselab.grocery.MainClass;org.iselab.grocery.util.SystemUtils;[];[run])]