add installation functionality