added core mechanics