begin implementing drain