done Task + TaskInitializer

may be not full and needed to be changed later