current working veision. will work on new method