still incomplete, but getting there