added excetpion stuff