refactored to use checkNotNull
added unit test for booking