class MobilityModule extends Module implements IMobilityModule, IMobilityModuleController {

    @Override
    public double costForMovingInLevel(final LevelType levelType)
            throws NotAuthenticatedException, NotObservableException {
        assertObservable();

        return ifNotNullElse( movementCost.get( levelType ), Double.MAX_VALUE );
    }

    protected  MobilityModule(final ImmutableResourceCost resourceCost, final int movementSpeed, final Map<LevelType, Double> movementCost,
                             final Map<LevelType, Double> levelingCost);

}