using provider interface
correcting generated json
capturing refers

removing aws specific syntax to awsprovider
adding refer
adding methods to provider
cleaning up template