forked from: Octopus 3

