Stock-Based Compensation - Stock option activity and fair value of stock option grants(Details) - Stock Options - USD ($)
12 Months Ended
Dec. 31, 2016
Dec. 31, 2015
Dec. 31, 2014
Options      
Outstanding beginning of period (in shares) 1,629,342    
Options granted (in shares) 24,000    
Options exercised (in shares) (111,763)    
Options cancelled (in shares) (59,375)    
Outstanding end of period (in shares) 1,482,204 1,629,342  
Exercisable (in shares) 1,200,199    
Weighted-Average Exercise Price Per Share      
Outstanding beginning of period (in dollars per share) $ 2.58    
Options granted (in dollars per share) 21.78    
Options exercised (in dollars per share) 1.85    
Options canceled (in dollars per share) 8.60    
Outstanding end of period (in dollars per share) 2.70 $ 2.58  
Exercisable (in dollars per share) $ 1.85    
Weighted-Average Remaining Contractual Life (Yrs)      
Weighted-Average Remaining Contractual Life, Outstanding (in years) 6 years 3 months 18 days 7 years 2 months 12 days  
Weighted-Average Remaining Contractual Life, Exercisable (in years) 6 years    
Aggregate Intrinsic Value      
Outstanding beginning of period (in dollars) $ 41,474,962    
Outstanding end of period (in dollars) 12,788,462 $ 41,474,962  
Exercisable (in dollars) $ 11,151,738    
Weighted-average grant-date fair value of options granted (in dollars per share) $ 12.64 $ 11.75 $ 6.47
Forfeiture rate (as a percent) 1.00% 1.40% 3.00%
Total unrecognized compensation expense $ 1,582,798    
Weighted average period expected to be recognized 1 year 9 months 18 days    
Total grant date fair value of stock options vested during the period $ 1,300,021    
Total intrinsic value of options exercised $ 2,112,426 $ 6,954,526 $ 588,088
Summary of weighted average assumptions used to estimate the fair value of stock option grants      
Volatility (as a percent) 61.50% 87.10% 104.30%
Expected term (years) 6 years 3 months 18 days 6 years 8 months 12 days 7 years
Risk- free interest rate (as a percent) 1.60% 1.80% 2.10%
Dividend yield (as a percent) 0.00% 0.00% 0.00%