Altogether

If you like all three previous pull requests, here they are already merged together