added sfx, and some logic