Fix bug
Add profiling