removed numpy requirement