kind of working - will detail in issues