Added PropertyListener and PropertyEvent systems

Signed-off-by: Dalton Pelc <daltonjpelc@gmail.com>