add abstract implementation of Property pattern in normal and static way