partial implmentation, syncronization issues