Merged #56 by @Hypersonic