add threshold parameter and better defaults