this should now work without numpy