Refactored to base

This needs to be merged **after** the testing PR.