v4.0.0

closes #58