added patch and profile
update setup.py
update tests