Implements promises for methods