initial push. not quite done yet