rudamentary implementation done