initial D implementation done