its now functional, but slow