implemented c sharp