started on implementing custom error types