added Substitutable support
added Substitutable support