adds basic listener support again

reverted the previous commits and started over. this one has only the
required the files.