forked from: Octopus 2

