implement Exosite library