marked as deprecated, should be implemented as Runnable