fully working spell casting and UI implementation