Add support for class member variable

supersedes #1417
This is fine but maybe we should allow `null` in the placeholder parser for the type.