Change DAO to use Optional<> and added default implementations
Added default implementation for getUserDetails