assertions and exceptions