finally. fixed #4, fixed #9, fixed #12, fixed #13, fixed #14. all because of player's positioning system