implemented exaptions