fixed bugs with memory data source
added EventDataSource as base class