add exists and isEmpty
TestScheduler example
make all constructors private