make it throw exception and stuff