added Substitutable support