Extract `Locatable` mixin

Refactor spot creation pipeline