drain implementation 1.1