fix: switch setup to numpy