Implement task base and adapt it to user apis