functional and object-oriented callback architecture
