added IllegalDirectionException