avoid extra copy of profile when resetting
Make Range::InRange a bool
remove runtime_error exceptions for impossible

these should be caught at compiletime, not runtime