Added custom exception and behaviours