working on proper raycasting