Contributed by Teguh Arief
Contributed by Ricardo Colombo
Contributed by Connor Davenport
Contributed by Barca