refactored a little bit the gift classes