add throws and all it's variants