added numpy stuff, got some of it working