modificare la core
refactored core