Author: Tim Waugh since 0.0.19 maintained by Ondrej Vasik since 0.0.29 maintained by Ondrej Sloup