Refactor: Move Axis to its own source file
Added enum type for adaptive/non adaptive axes
Added option to specify bounds